package com.fjl.mapper;

import com.fjl.pojo.po.AbpmRunTaskPO;
import com.fjl.pojo.po.AbpmVersionInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface AbpmMapper {
    // 插入数据
    void insertRuTask(AbpmRunTaskPO AbpmRunTaskPO);

    // 根据任务 ID 查询
    AbpmRunTaskPO selectRuTaskById(@Param("taskId") String taskId);

    // 根据流程实例 ID 查询
    List<AbpmRunTaskPO> selectRuTaskByProcessInstanceId(@Param("processInstanceId") String processInstanceId);

    // 根据任务 ID 删除
    Integer deleteRuTaskById(@Param("taskId") String taskId);

    // 根据父任务 ID 删除
    Integer deleteRUTaskByParentTaskId(@Param("parentTaskId") String parentTaskId);

    // 根据流程唯一 ID 删除
    Integer deleteRUTaskByProcessInstanceId(@Param("processInstanceId") String processInstanceId);

    // 根据流程唯一 ID 和 PROC_DEF_ID 查询
    List<AbpmRunTaskPO> selectRuTaskByProcessInstanceIdAndProcDefId(@Param("processInstanceId") String processInstanceId, @Param("procDefId") String procDefId);

    // 根据流程唯一 ID 和 PROC_DEF_ID 删除
    Integer deleteRuTaskByProcessInstanceIdAndProcDefId(@Param("processInstanceId") String processInstanceId, @Param("procDefId") String procDefId);


    void insertAbpmVersionInfo(AbpmVersionInfo abpmVersionInfo);

    AbpmVersionInfo selectAbpmVersionInfoByProcessVersion(String processVersion);
}
